Import("AAAInit.js")

// Import("ocr.js")
// Import("utils.js")
// Import("ggUtils.js")

printinfoOld('开始加载组件...')
// Import("D今日头条.js")
Import("D头条搜索极速版.js")
Import("B抖音极速版.js")
Import("B抖音火山版.js")
Import("D百度极速版.js")
Import("C红果免费短剧.js")
Import("C番茄畅听.js")
Import("C番茄畅听音乐版.js")
Import("C西瓜视频.js")

Import("AAB快手系浏览任务.js")
Import("ZAAG游戏挂机.js")

Import("ZAAD简易签到任务中心.js")
printinfoOld('组件加载完成')
printinfoOld('开始浏览任务')


function main_收集金币_频繁() {
    // 红果
    if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_HG') && isAllow允许登录(PACK_NAME_HG) && !isEnableSwitch('hongguoyanghao')) {
        if ((!isEnableSwitch('hg_openbx') && isBetweenTime(0, 8))) {

        } else {
            printinfoOld('执行红果start_收集金币_HG')


            // 如果开宝箱被屏蔽时长改为60分钟, 如果宝箱打开并且上限50万金币则15分钟执行一次
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_HG', (isEnableSwitch('hg_openbx') ? ((isEnableSwitch('sx_hg') || isEnableSwitch('sx_hg3')) ? 15 : 3.3) : 30) * 60)

            
            start_收集金币_HG(false)

            stopAllApp()
        }

    }

    // 番茄畅听
    if (isAllow允许登录(PACK_NAME_FQCT)) {
        printinfoOld('执行番茄畅听浏览挂机')
        
        if (isEnableSwitch('ct_llrw') && !hasExcuteFuncInTime是否在一段时间内执行过('start_浏览任务_FQCT')) {
            setExcuteFuncInTime一段时间内不再执行('start_浏览任务_FQCT', 2 * 60 * 60)
            start_浏览任务_FQCT()
        }

        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', (isRunAppTask('taskct', '开宝箱') ? (isEnableSwitch('ct_fkms') ? 3 : 10) : 30) * 60)
            start_收集金币_FQCT()
        }
    }

    // 番茄畅听音乐版
    if (isAllow允许登录(PACK_NAME_FQCTYYB)) {
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCTYYB')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', (isRunAppTask('taskctyy', '开宝箱') ? (isEnableSwitch('ctyyb_fkms') ? 3 : 10) : 30) * 60)
            start_收集金币_FQCTYYB()
        }
    }
}

function mainTask(cb) {
    close多余的弹窗()

    if (isEnableSwitch('isstartmoresleep') && hasExcuteFuncInTime是否在一段时间内执行过('isstartmoresleep')) {
        
        printinfoOld('首次多休眠20分钟为了充电')
        sleep.second(20 * 60)
        setExcuteFuncInTime一段时间内不再执行('isstartmoresleep', 3 * 60 * 60)
        
    }

    if (ENV() == 'pro') {
        

        if (!hasExcuteFuncInTime是否在一段时间内执行过('hangup_挂游戏') && isBetweenTime(0, 12)) {
            if (isEnableSwitch('auto_gj')) {
                printinfoOld('hangup_挂游戏')


                if (!hangup_挂游戏()) {
                    // 
                    if (isBetweenTime(0, 19)) {
                        var sleepTime = getRandomNum(1, 15)
                        printinfoOld('没有成功启动游戏, 进行随机休眠: ' + sleepTime + '分钟, 任务不同步执行')
                        reperatAgentHome(sleepTime)
                    }
                }
            } else {
                if (isEnableSwitch('mod_sjsleep') && isBetweenTime(0, 14)) {
                    var sleepTime = getRandomNum(5, 20)
                    printinfoOld('随机休眠: ' + sleepTime + '分钟, 任务不同步执行')
                    reperatAgentHome(sleepTime)
                }

            }
            setExcuteFuncInTime一段时间内不再执行('hangup_挂游戏', 24 * 60 * 60)
        }

        if (isEnableSwitch('nozhixing')) {
            printwarn('0, 2不执行, 直到时间来到!')
            while (isBetweenTime(0, 2)) {
                sleep.second(5)
            }
        }

        
        // sleep.second(sleepTime * 60)
    }

    
    start_简易任务_task()

    if (isEnableSwitch('monthlast')) {
        // 判断是否月末, 进行整体休眠
        if (isLastDateOfCurrentMonth()) {
            
            printwarn('月末, 进行整体休眠!!!!!!!!!!', 5 * 60)
            stopAll()
        }
    }

    while (true) {
        

        // 抖音火山版浏览任务 大概需要1个小时
        if (isAllow允许登录(PACK_NAME_DYHSB) && isBetweenTime(0, 20)) {
            printinfoOld('执行抖音火山版浏览挂机')

            
            if (!hasExcuteFuncInTime是否在一段时间内执行过('start_浏览任务_DYHSB')) {
                setExcuteFuncInTime一段时间内不再执行('start_浏览任务_DYHSB', 3 * 60 * 60)
                start_浏览任务_DYHSB()
            }
            if (!hasExcuteFuncInTime是否在一段时间内执行过('start_挂机任务_DYHSB')) {
                setExcuteFuncInTime一段时间内不再执行('start_挂机任务_DYHSB', 2.5 * 60 * 60)
                start_挂机任务_DYHSB()
                main_收集金币_频繁()
            }
        }

        // 抖极首次执行时长20/15分钟 获取惊喜广告奖励
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_浏览任务_DYJSB') && isAllow允许登录(PACK_NAME_DYJSB) && (isBetweenTime(0, 12) || isBetweenTime(16, 20))) {
            printinfoOld('执行抖音极速版start_浏览任务_DYJSB')
            
            setExcuteFuncInTime一段时间内不再执行('start_浏览任务_DYJSB', 2 * 60 * 60)
            //   setExcuteFuncInTime一段时间内不再执行('start_浏览任务_DYJSB', 0)
            start_浏览任务_DYJSB()
            main_收集金币_频繁()
        }

        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币不看红包雨_DYJSB')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币不看红包雨_DYJSB', 40 * 60)
            start_收集金币不看红包雨_DYJSB()
            main_收集金币_频繁()
        }


        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_XGSP')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_XGSP', 40 * 60)
            start_收集金币_XGSP()
        }


        // 快手极速版首次执行时长16分钟
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start快手极速版的浏览任务') && isAllow允许登录(PACK_NAME_KSJSB)) {
            setExcuteFuncInTime一段时间内不再执行('start快手极速版的浏览任务', 20 * 60)
            start快手极速版的浏览任务()
            main_收集金币_频繁()
        }
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start快手的浏览任务') && isAllow允许登录(PACK_NAME_KS)) {
            setExcuteFuncInTime一段时间内不再执行('start快手的浏览任务', 20 * 60)
            start快手的浏览任务()
            main_收集金币_频繁()
        }


        // 红果首次执行时长16分钟
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_看红果视频_HG') && !isEnableSwitch('hg_bullzs') && isBetweenTime(0, 18)) {
            setExcuteFuncInTime一段时间内不再执行('start_看红果视频_HG', 1 * 60 * 60)
            start_看红果视频_HG()
            main_收集金币_频繁()
        }


        // 抖极首次执行时长20分钟
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_浏览吃喝玩乐视频_DYJSB') && getExcuteFuncTimes('start_浏览吃喝玩乐视频_DYJSB') <= 4) {
            start_浏览吃喝玩乐视频_DYJSB(true)
            setExcuteFuncInTime一段时间内不再执行('start_浏览吃喝玩乐视频_DYJSB', 4 * 60 * 60)
            main_收集金币_频繁()
        }
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_浏览小周视频_DYJSB') && getExcuteFuncTimes('start_浏览小周视频_DYJSB') <= 4) {
            start_浏览小周视频_DYJSB()
            main_收集金币_频繁()
            setExcuteFuncInTime一段时间内不再执行('start_浏览小周视频_DYJSB', 4 * 60 * 60)
        }

        // 头条极速版首次执行时长1小时
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_看小说任务_TTSSJSB') && isBetweenTime(0, 16)) {
            setExcuteFuncInTime一段时间内不再执行('start_看小说任务_TTSSJSB', 1 * 60 * 60)
            start_看小说任务_TTSSJSB()
            main_收集金币_频繁()
        }

        // 百度极速版首次执行时长20/15分钟
        if (isAllow允许登录(PACK_NAME_BDJSB)) {
            

            if (isEnableSwitch('bd_kxs') && !hasExcuteFuncInTime是否在一段时间内执行过('start_看小说任务_BDJSB')) {
                setExcuteFuncInTime一段时间内不再执行('start_看小说任务_BDJSB', 1 * 60 * 60)
                start_看小说任务_BDJSB()
                main_收集金币_频繁()
            }

            if (!hasExcuteFuncInTime是否在一段时间内执行过('start_浏览任务_BDJSB')) {
                setExcuteFuncInTime一段时间内不再执行('start_浏览任务_BDJSB', 1 * 60 * 60)
                start_浏览任务_BDJSB()
                main_收集金币_频繁()
            }

            
            // 已完成浏览任务或者执行次数% 3== 0
            if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_BDJSB') && (hasExcuteFunc('start_浏览任务_BDJSB') || getExcuteFuncTimes('start_浏览任务_BDJSB') % 3 == 0)) {
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_BDJSB', 2 * 60 * 60)
                start_收集金币_BDJSB()
                main_收集金币_频繁()
            }
        }

        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_养双红包雨_DYJSB')) {
            setExcuteFuncInTime一段时间内不再执行('start_养双红包雨_DYJSB', 3 * 60 * 60)
            start_养双红包雨_DYJSB()
            main_收集金币_频繁()
        }

        close多余的弹窗()
        main_收集金币_频繁()

        // 抖音火山版
        if (!hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_DYHSB') && isAllow允许登录(PACK_NAME_DYHSB) && isBetweenTime(9, 24)) {
            printinfoOld('执行抖音火山版start_收集金币_DYHSB')
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_DYHSB', 20 * 60)

            
            start_收集金币_DYHSB(false)
        }

        main_收集金币_频繁()


        // 头条搜索极速版
        if (isAllow允许登录(PACK_NAME_TTSSJSB) && isBetweenTime(7, 24) && !hasExcuteFuncInTime是否在一段时间内执行过('start_收集金币_TTSSJSB')) {
            printinfoOld('执行头条搜索极速版start_收集金币_TTSSJSB')
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_TTSSJSB', 1 * 60 * 60)

            
            start_收集金币_TTSSJSB()
            main_收集金币_频繁()
        }


        sleep.second(3)
        close多余的弹窗()
        reperatAgentHome(uiSwitch.findByID(控件ID = "moresleeptimemode").getOn() ? 9 : 3)
        if (!hasExcuteFuncInTime是否在一段时间内执行过('养鸡任务次数times')) {
            if (isBetweenTime(3, 7) || isBetweenTime(9, 20)) {
                lower降低屏幕亮度()
            }
            if (isBetweenTime(20, 24) || isBetweenTime(0, 3) || isBetweenTime(7, 9)) {
                higher调高屏幕亮度()
            }

            stopAllApp()
            sleep.second(5)

            // agentSwipSmallerDown很小间距()
            setExcuteFuncInTime一段时间内不再执行('养鸡任务次数times', 30 * 60)
        }
    }
}


var maintaskIsStop = false
function mainThreadTask() {
    try {
        // 可能抛出异常的代码
        printinfoOld('启动主任务线程...')
        mainTask(() => {
            if (isEndTime()) {
                printinfoOld('23:50后停止脚本执行')
                sleep.second(16 * 60)

                if (!hasForverExcuteFunc('init' + getDayOfYear())) {
                    SystemPrint.log('新的一天初始化数据, 清除所有缓存数据')
                    clearData()
                    setForverExcuteFunc('init' + getDayOfYear())
                }
            }
        })
    } catch (err) {
        var app内存占用 = Math.floor((getNumber(app.getMemory(), 1) / getNumber(app.getMemory())) * 100)
        printinfoOld('当前内存占用: ' + app内存占用)
        addForverExcuteFuncTimes('当前内存占用', app内存占用)
        sleep.second(60)

        stopAllApp()
        maintaskIsStop = true
        // 处理ExceptionType1类型的异常
    }
}

//定义守护线程
var thread守护 = new thread();
thread守护.runJsCode(() => {
    while (true) {
        sleep.second(60)

        if (!isEndTime()) {
            if (maintaskIsStop) {
                maintaskIsStop = false
                if (isBetweenTime(0, 1)) {
                    sleep.second(5 * 60)
                    if (!hasForverExcuteFunc('init' + getDayOfYear())) {
                        SystemPrint.log('新的一天初始化数据, 清除所有缓存数据')
                        clearData()
                        setForverExcuteFunc('init' + getDayOfYear())
                    }
                }
                mainThreadTask()
            }
        }
    }
}, "守护线程")

mainThreadTask()


